names = [("001", "张三"), ("002", "李四"), ("003", "王五")]
ages = [("001", 23), ("002", 24), ("003", 25)]

# 通过id关联两个表

# 方法一(需要的时间复杂度时On^2),性能低
# 循环一个列表，通过id去列一个列表中查找数据

# 定义一个空的列表保存结果
info = []
for id, name in names:
    for age_id, age in ages:
        # 如果找到了将结果保存到新的列表中
        if id == age_id:
            info.append((id, name, age))

print(info)

# 时间复杂度（代码需要循环的次数） ，表示方式On^2

# 2、方法二,(时间复杂度是On,空间复杂度On)
# 将其中一个数据转换成字典，
# 循环另一个数据，通过关联字段到字典中获取数据

# 将年龄转换成字典
# dict：参数必须要一个kv格式的容器
ages_dict = dict(ages)

info = []

for id, name in names:
    # 通过id到age字典中获取age
    age = ages_dict[id]

    info.append((id, name, age))

print(info)